@Luminary
1年前 提问
2个回答
如何预防网站遭受跨站点脚本(XSS)攻击
安全小白成长记
1年前
1、输入检查
输入检查的逻辑,必须放在服务器端代码中实现。如果只是在客户端使用JavaScript进行输入检查,是很容易被攻击者绕过的。目前Web开发的普遍做法,是同时在客户端JavaScript中和服务器端代码中实现相同的输入检查。客户端JavaScript的输入检查,可以阻挡大部分误操作的用户,从而节约服务器资源。
2、输出检查
一般来说,除了富文本的输出外,在变量输出到HTML页面时,可以使用编码或转义的方式来防御XSS攻击。
针对HTML代码的编码方式是HtmlEncode,它只是一种函数实现。它的作用是将字符转化成HTMLEntities。
为了对抗XSS,在HtmlEncode中要求至少转换一下字符:
X0_0X
1年前
官方采纳
预防跨站脚本攻击的措施有以下这些:
尽可能避免直接进行OS调用。
如果需要的话,建立可接收命令的白名单,并在命令执行之前对所接收的输入加以验证。
如果用户输入的字符串可能传递给操作系统,那么可以“采用编号-命令字符串”的方式对用户输入进行映射,例如{1:ping-c 5}。
对代码进行静态分析,当代码用到os.system()等OS命令时需格外留意。
默认所有的用户输入都是不可信的,并将返回给用户的数据以转义字符的形式进行输出。(例如,将&转义为&,将<转义为<,将>转义为>等)。
针对XSS漏洞,使用X-XSS-Protection和Content-Secur。
确保在量产的固件版本中禁用了带有命令执行功能的调试接口。